// mongoose的其他操作
const mongoose = require('mongoose');
// 连接数据库
mongoose.connect('mongodb://127.0.0.1/mytest',err=>{
    if(err){
        return console.log(err)
    }
    console.log('数据库连接成功');
})

// 建立骨架
let schema = mongoose.Schema({
    name:String,
    age:Number
})

// 创建模型  tests集合映射到schema中   tests集合都是加了s的
let userModel = mongoose.model('tests',schema);

// 一、增加 数组和字段  ,mongoose 条件的内容，会自带一个 __v字段。
let arr = [{name:'李小二',age:22},{name:'李小四',age:20}];

// userModel.create(arr,err=>{
//     if(err){
//         return console.log(err);
//     }
//     console.log('添加成功');
// })

// (async function(){
//     try{
//         await userModel.create({name:'名字',age:25});
//         console.log('添加成功');
//     }catch(err){
//         console.log(err);
//     }  
// })()

// 二、删除 remove, 可以通过deleteOne 删除一条，deleteMany删除多条
// (async function(){
//     try{
//         let res = await userModel.deleteOne({age:19}); // res 是删除之后的结果
//         console.log('删除成功',res);
//     }catch(err){
//         console.log(err);
//     }
    
// })()

// 三、修改：update
// 把年龄大于22的用户名称 改为“修改了”
// (async function(){
//     try{
//         let res = await userModel.updateMany({age:{$gt:22}},{$set:{name:'修改了'}});
//         console.log('修改成功',res);
//     }catch(err){
//         console.log(err);
//     }
// })()

// 四、查询：find()
(async function(){
    try{
         // 查询所有年龄大于19的人，且年龄按照正序排列，跳过前2条，在查询2条数据
    let res = await userModel.find({age:{$gt:19}}).sort({age:1}).skip(2).limit(2);
    console.log(res);
    }catch(err){
        console.log(err);
    }

   
})()

